package com.lanlion.porlet.common;

/**
 * 微信支付请求返回实体
 */
@CommonEntityFileAnnotation(type = "class",name = "wechat_pay_view")
public class WechatPayView {

    //返回状态码SUCCESS/FAIL,此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
    @CommonEntityFileAnnotation(type = "String",name = "return_code")
    private String returnCode;

    //返回信息，如非空，为错误原因 签名失败 参数格式校验错误
    @CommonEntityFileAnnotation(type = "String",name = "return_msg")
    private String returnMsg;

    //服务商商户的APPID
    @CommonEntityFileAnnotation(type = "String",name = "appid")
    private String appid;

    //调用接口提交的商户号
    @CommonEntityFileAnnotation(type = "String",name = "mch_id")
    private String mchId;

    //微信分配的子商户公众账号ID
    @CommonEntityFileAnnotation(type = "String",name = "sub_appid")
    private String subAppid;

    //微信支付分配的子商户号
    @CommonEntityFileAnnotation(type = "String",name = "sub_mch_id")
    private String subMchId;

    //调用接口提交的终端设备号
    @CommonEntityFileAnnotation(type = "String",name = "device_info")
    private String deviceInfo;

    //微信返回的随机字符串
    @CommonEntityFileAnnotation(type = "String",name = "nonce_str")
    private String nonceStr;

    @CommonEntityFileAnnotation(type = "String",name = "sign")
    private String sign;

    //业务结果SUCCESS/FAIL
    @CommonEntityFileAnnotation(type = "String",name = "result_code")
    private String resultCode;

    //错误代码
    @CommonEntityFileAnnotation(type = "String",name = "err_code")
    private String errCode;

    //错误代码描述
    @CommonEntityFileAnnotation(type = "String",name = "err_code_des")
    private String errCodeDes;

    //交易类型,JSAPI 公众号支付;NATIVE Native支付;APP APP支付
    @CommonEntityFileAnnotation(type = "String",name = "trade_type")
    private String tradeType;

    //微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时
    @CommonEntityFileAnnotation(type = "String",name = "prepay_id")
    private String prepayId;

    //trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。
    @CommonEntityFileAnnotation(type = "String",name = "code_url")
    private String codeUrl;

    //mweb_url为拉起微信支付收银台的中间页面，可通过访问该url来拉起微信客户端，完成支付,mweb_url的有效期为5分钟。
    @CommonEntityFileAnnotation(type = "String",name = "mweb_url")
    private String mwebUrl;


    //用户在商户appid下的唯一标识
    @CommonEntityFileAnnotation(type = "String",name = "openid")
    private String openid;

    //用户是否关注公众账号，Y-关注，N-未关注（机构商户不返回）
    @CommonEntityFileAnnotation(type = "String",name = "is_subscribe")
    private String isSubscribe;

    //用户在子商户appid下的唯一标识
    @CommonEntityFileAnnotation(type = "String",name = "sub_openid")
    private String subOpenid;

    //用户是否关注子公众账号，Y-关注，N-未关注（机构商户不返回）
    @CommonEntityFileAnnotation(type = "String",name = "sub_is_subscribe")
    private String subIsSubscribe;

    //SUCCESS—支付成功;REFUND—转入退款;NOTPAY—未支付;CLOSED—已关闭;REVOKED—已撤销(刷卡支付);USERPAYING--用户支付中;PAYERROR--支付失败(其他原因，如银行返回失败)
    @CommonEntityFileAnnotation(type = "String",name = "trade_state")
    private String tradeState;

    //银行类型，采用字符串类型的银行标识
    @CommonEntityFileAnnotation(type = "String",name = "bank_type")
    private String bankType;

    //订单总金额，单位为分
    @CommonEntityFileAnnotation(type = "String",name = "total_fee")
    private String totalFee;

    //现金支付金额订单现金支付金额
    @CommonEntityFileAnnotation(type = "String",name = "cash_fee")
    private int cashFee;

    //微信支付订单号
    @CommonEntityFileAnnotation(type = "String",name = "transaction_id")
    private String transactionId;

    //商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*@ ，且在同一个商户号下唯一。
    @CommonEntityFileAnnotation(type = "String",name = "out_trade_no")
    private String outTradeNo;

    //订单支付时间，格式为yyyyMMddHHmmss
    @CommonEntityFileAnnotation(type = "String",name = "time_end")
    private String timeEnd;

    //对当前查询订单状态的描述和下一步操作的指引
    @CommonEntityFileAnnotation(type = "String",name = "trade_state_desc")
    private String tradeStateDesc;

    //商户系统内部的退款单号，商户系统内部唯一，只能是数字、大小写字母_-|*@ ，同一退款单号多次请求只退一笔。
    @CommonEntityFileAnnotation(type = "String",name = "out_refund_no")
    private String outRefundNo;

    //微信退款单号
    @CommonEntityFileAnnotation(type = "String",name = "refund_id")
    private String refundId;

    //	退款总金额,单位为分,可以做部分退款
    @CommonEntityFileAnnotation(type = "String",name = "refund_fee")
    private int refundFee;

    //去掉非充值代金券退款金额后的退款金额，退款金额=申请退款金额-非充值代金券退款金额，退款金额<=申请退款金额
    @CommonEntityFileAnnotation(type = "String",name = "settlement_refund_fee")
    private int settlementRefundFee;


    public String getOutRefundNo() {
        return outRefundNo;
    }

    public void setOutRefundNo(String outRefundNo) {
        this.outRefundNo = outRefundNo;
    }

    public String getRefundId() {
        return refundId;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public int getRefundFee() {
        return refundFee;
    }

    public void setRefundFee(int refundFee) {
        this.refundFee = refundFee;
    }

    public int getSettlementRefundFee() {
        return settlementRefundFee;
    }

    public void setSettlementRefundFee(int settlementRefundFee) {
        this.settlementRefundFee = settlementRefundFee;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getIsSubscribe() {
        return isSubscribe;
    }

    public void setIsSubscribe(String isSubscribe) {
        this.isSubscribe = isSubscribe;
    }

    public String getSubOpenid() {
        return subOpenid;
    }

    public void setSubOpenid(String subOpenid) {
        this.subOpenid = subOpenid;
    }

    public String getSubIsSubscribe() {
        return subIsSubscribe;
    }

    public void setSubIsSubscribe(String subIsSubscribe) {
        this.subIsSubscribe = subIsSubscribe;
    }

    public String getTradeState() {
        return tradeState;
    }

    public void setTradeState(String tradeState) {
        this.tradeState = tradeState;
    }

    public String getBankType() {
        return bankType;
    }

    public void setBankType(String bankType) {
        this.bankType = bankType;
    }

    public String getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(String totalFee) {
        this.totalFee = totalFee;
    }

    public int getCashFee() {
        return cashFee;
    }

    public void setCashFee(int cashFee) {
        this.cashFee = cashFee;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getTimeEnd() {
        return timeEnd;
    }

    public void setTimeEnd(String timeEnd) {
        this.timeEnd = timeEnd;
    }

    public String getTradeStateDesc() {
        return tradeStateDesc;
    }

    public void setTradeStateDesc(String tradeStateDesc) {
        this.tradeStateDesc = tradeStateDesc;
    }

    public String getMwebUrl() {
        return mwebUrl;
    }

    public void setMwebUrl(String mwebUrl) {
        this.mwebUrl = mwebUrl;
    }

    public String getReturnCode() {
        return returnCode;
    }

    public void setReturnCode(String returnCode) {
        this.returnCode = returnCode;
    }

    public String getReturnMsg() {
        return returnMsg;
    }

    public void setReturnMsg(String returnMsg) {
        this.returnMsg = returnMsg;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getMchId() {
        return mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getSubAppid() {
        return subAppid;
    }

    public void setSubAppid(String subAppid) {
        this.subAppid = subAppid;
    }

    public String getSubMchId() {
        return subMchId;
    }

    public void setSubMchId(String subMchId) {
        this.subMchId = subMchId;
    }

    public String getDeviceInfo() {
        return deviceInfo;
    }

    public void setDeviceInfo(String deviceInfo) {
        this.deviceInfo = deviceInfo;
    }

    public String getNonceStr() {
        return nonceStr;
    }

    public void setNonceStr(String nonceStr) {
        this.nonceStr = nonceStr;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getResultCode() {
        return resultCode;
    }

    public void setResultCode(String resultCode) {
        this.resultCode = resultCode;
    }

    public String getErrCode() {
        return errCode;
    }

    public void setErrCode(String errCode) {
        this.errCode = errCode;
    }

    public String getErrCodeDes() {
        return errCodeDes;
    }

    public void setErrCodeDes(String errCodeDes) {
        this.errCodeDes = errCodeDes;
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public String getPrepayId() {
        return prepayId;
    }

    public void setPrepayId(String prepayId) {
        this.prepayId = prepayId;
    }

    public String getCodeUrl() {
        return codeUrl;
    }

    public void setCodeUrl(String codeUrl) {
        this.codeUrl = codeUrl;
    }
}
